from django.db import models


"""
1.  分部信息 （基础数据）-   Branch【id, name】
     成都分部、武汉分部、上海分部、深圳分部、北京分部
2.  业务区信息 （基础数据）-  Area【id, name, branch(FK)】
     数据：四川区、重庆区、宁夏区、云南区
3.  场地信息 （基础数据）-   Place【code , name, Area(FK)，PlaceType(FK),  account(FK)】
     场地代码	场地名称	               业务区	      类型	                     责任人
     871VH	   昆明呈贡斗南集散点              云南区	 超级中转场	  张三950001
4.  场地类型 （基础数据）--PlaceType【id,name】
      数据： 超级中转场， 仓储， 全自动
5.  任务类型（基础数据）-- TaskType【id,name】
     数据： 专项工作、任务工作、安全工作、高峰工作
6.  IT运维任务 ----Task --- 【id, name, desc】
    数据：系统故障，网络故障，
"""

# 分部信息： Id, Name
class Branch(models.Model):
    name = models.CharField(verbose_name="分部", max_length=100, unique=True, null=False, blank=False)

    class Meta:
        managed = True
        app_label = "basicweb"
        db_table = "Basic_Branch"

    def __str__(self):
        return "%s" % (self.name)


# 业务区：Area【id, name, branch(FK)】
class BranchArea(models.Model):
    name = models.CharField(verbose_name="业务区", max_length=100, unique=True, null=False, blank=False)
    branch = models.ForeignKey(verbose_name="分部", to=Branch, on_delete=models.PROTECT)

    class Meta:
        managed = True
        app_label = "basicweb"
        db_table = "Basic_BranchArea"

    def __str__(self):
        return "%s" % (self.name)


# 场地类型 AreaType(id, name)
class PlaceType(models.Model):
    name = models.CharField(verbose_name="类型名称", max_length=100, unique=True, null=False, blank=False)

    class Meta:
        managed = True
        app_label = "basicweb"
        db_table = "Basic_PlaceType"

    def __str__(self):
        return "%s" % (self.name)



# 场地信息 （基础数据）-   Place【code , name, Area(FK)，PlaceType(FK),  account(FK)】
class AreaPlace(models.Model):
    code = models.CharField(verbose_name="场地代码", max_length=20, primary_key=True, null=False, blank=False)
    name = models.CharField(verbose_name="名称", max_length=100, unique=True, null=False, blank=False)
    placetype = models.ForeignKey(verbose_name="场地类型", to=PlaceType, on_delete=models.PROTECT)
    brancharea = models.ForeignKey(verbose_name="所属业务区", to=BranchArea, on_delete=models.PROTECT, default=1)

    class Meta:
        managed = True
        app_label = "basicweb"
        db_table = "Basic_AreaPlace"

    def __str__(self):
        return "%s" % (self.name)


#  任务类型（基础数据）-- TaskType【id,name】
class TaskType(models.Model):
    name = models.CharField(verbose_name="任务类型", max_length=100, unique=True, null=False, blank=False)

    class Meta:
        managed = True
        app_label = "basicweb"
        db_table = "Basic_TaskType"

    def __str__(self):
        return "%s" % (self.name)


# 运维工作类型
class TaskInfo(models.Model):
    name = models.CharField(verbose_name="运维工作", max_length=100, unique=True, null=False, blank=False)
    desc = models.CharField(verbose_name="工作描述", max_length=200, null=False, blank=False)

    class Meta:
        managed = False
        app_label = "basicweb"
        db_table = "Basic_TaskInfo"

    def __str__(self):
        return "%s" % (self.name)



class TaskStatus(models.Model):
    name = models.CharField(verbose_name="状态名称", max_length=100, unique=True, null=False, blank=False)
    desc = models.CharField(verbose_name="状态描述", max_length=200, null=False, blank=False)

    class Meta:
        managed = True
        app_label = "basicweb"
        db_table = "Basic_TaskStatus"

    def __str__(self):
        return "%s" % (self.name)

